package cn.marinda.resturants.mapper;

import cn.marinda.resturants.entity.Staff;
import cn.marinda.resturants.global.Pages;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.context.annotation.Primary;

import java.util.List;

/** 员工mapper
 * @date 2021/11/16
 * @author Marinda
 */
public interface StaffMapper extends BaseMapper<Staff> {

    /** 模糊查询一批名称的
     *
     * @param likeName 模糊名称
     * @return 列表
     */

    @Select("select * from r_staff where name like CONCAT('%',#{likeName},'%') ")
    List<Staff> selectNameLike(String likeName);

    /** 员工加入日期区间列表
     *
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 列表
     */
    @Select("select * from r_staff where join_date between #{startDate} and #{endDate}")
    List<Staff> selectJoinDateInterval(String startDate,String endDate);

    /** 根据性别区间拿到员工 列表
     *
     * @param sex 性别
     * @return 员工列表
     */
    @Select("select * from where sex = #{sex}")
    List<Staff> selectSexInterval(char sex);

    /** 员工部门列表
     *
     * @param department 部门列表
     * @return 员工列表
     */
    List<Staff> selectDepartment(String department);

    /** 查询手机号指定的员工
     *
     * @param phone 手机号
     * @return 员工
     */
    @Select("select * from r_staff where phone = #{phone}")
    Staff selectPhone(long phone);

    /** 查询邮箱指定返回的员工
     *
     * @param email 邮箱
     * @return 员工
     */
    @Select("select * from r_staff where email = #{email}")
    Staff selectEmail(String email);

    /** 查询员工工资号
     *
     * @param uid 员工id
     * @return 员工工资号
     */
    @Select("select salary_uid from r_staff where uid = #{uid}")
    String selectSalaryUid(String uid);


    /** 分页查询
     *
     * @param page 分页
     * @return 分页
     */
    @Select("select * from r_staff ")
    IPage<Staff> selectPages(Pages<?> page);
}
